네트워크·통신 용어

프로토콜, OSI 계층, 스위치, 게이트웨이, 프록시, HTTP, 통신망 평면 용어

  • 용어 42개

protocol (프로토콜)

통신하는 양쪽이 미리 약속한 규칙. 메시지 형식, 순서, 오류 처리 방식 등.

peer (피어)

통신에서 마주 보는 상대편(대등한 상대 노드).

  • 서버일 수도, 클라이언트일 수도 있다. “대상 서버”만을 뜻하지 않는다.
  • 예) peer 정보 = 상대 쪽 주소, 식별자 같은 정보.

client / server, request / response

요청을 보내는 쪽(client)과 받아서 응답하는 쪽(server), 그리고 그 메시지 쌍.

  • 한 노드가 상황에 따라 client도 server도 될 수 있다.

TCP

연결 지향 전송 프로토콜(L4). 순서 보장, 유실 시 재전송, 흐름·혼잡 제어로 신뢰성 있는 통신을 제공한다.

OSI 7계층 (L1 ~ L7)

통신 기능을 7단계로 나눈 참조 모델.

계층이름핵심 역할예시
L7응용(Application)사용자 서비스용 프로토콜HTTP, DNS, FTP
L6표현(Presentation)데이터 형식 변환, 암호화, 압축TLS(일부), 문자 인코딩
L5세션(Session)연결(세션)의 시작, 유지, 종료 관리세션 관리
L4전송(Transport)포트 기반 프로세스 간 전달, 신뢰성TCP, UDP
L3네트워크(Network)IP 주소 기반 경로 선택(라우팅)IP, 라우터
L2데이터링크(Data Link)MAC 주소 기반, 같은 네트워크 안 프레임 전달이더넷, L2 스위치
L1물리(Physical)전기·광 신호로 비트 전송케이블, 허브

아래에서 위로 “물리 → 데이터링크 → 네트워크 → 전송 → 세션 → 표현 → 응용” 순서다. 실무에서는 L5~L7을 합쳐 TCP/IP 4계층(링크, 인터넷, 전송, 응용)으로 설명하기도 한다.

IP / MAC / port / socket

IP는 네트워크 상의 주소(L3), MAC은 네트워크 카드 고유 주소(L2), port는 한 호스트 안에서 프로그램을 구분하는 번호(L4), socket은 통신의 끝점(IP + 포트).

network byte order (네트워크 바이트 순서)

네트워크로 보내는 멀티바이트 값(포트 번호, IP 주소, 프로토콜 헤더 필드)을 big endian으로 보내기로 한 약속.

L2 스위치

MAC 주소를 보고 프레임을 해당 포트로만 전달하는 장비(같은 LAN 안).

L3 스위치

L2 스위치 기능에 IP 라우팅 기능을 더한 장비.

  • 서로 다른 네트워크(VLAN) 간 통신을 빠르게 라우팅한다.

L4 스위치

IP와 포트(TCP/UDP) 정보를 보고 트래픽을 분산하거나 제어하는 장비.

  • L4 로드밸런서로도 불린다. 더 위로 URL, 헤더, 쿠키 같은 L7 내용까지 보고 분산하는 것은 L7 스위치(로드밸런서)다.

router (라우터)

서로 다른 네트워크 사이에서 IP 주소를 보고 경로를 선택해 패킷을 전달하는 장비.

gateway (게이트웨이)

서로 다른 네트워크나 시스템 사이의 출입구.

proxy (프록시)

클라이언트와 서버 사이에서 요청을 대신 전달하는 중간 서버(대리).

reverse proxy (리버스 프록시)

서버 앞단에서 클라이언트의 요청을 대신 받아 뒤쪽 서버로 전달하는 중간 서버.

  • load balancing은 reverse proxy가 하는 일 중 하나일 뿐 전부는 아니다. 그 밖에 TLS 종료(암호화 처리), 캐시, 압축, 인증, URL별 라우팅, 뒤쪽 서버 숨기기(보안)를 한다.
  • load balancer와 reverse proxy는 같은 말이 아니다. load balancer는 “분산”이 목적이고(L4도 가능), reverse proxy는 “대리 수신”이 정의다. nginx, HAProxy 같은 도구는 둘 다 수행한다.

relay (릴레이)

받은 메시지를 큰 변형 없이 다음 대상으로 중계하는 것.

  • proxy, gateway와 경계가 모호하고 제품마다 용어가 다르게 쓰인다. 중계에 초점이 있다는 정도로 이해한다.

방화벽 (firewall)

규칙(IP, 포트, 프로토콜 등)에 따라 통신을 허용하거나 차단하는 보안 장치.

load balancing / load balancer (로드 밸런싱)

들어온 요청(부하)을 여러 서버에 고르게 나누어 한 서버에 몰리지 않게 하는 것, 또는 그 장치·소프트웨어.

  • 분산 방식 예) round robin(순서대로), least connections(연결이 가장 적은 서버로), weighted(서버 성능에 따라 가중치), IP hash(같은 클라이언트는 같은 서버로).
  • health check로 장애 난 서버를 제외하고 정상 서버로만 보낸다.
  • L4(IP+포트 기준)와 L7(URL, 헤더, 쿠키 기준) 방식이 있다.
  • 학습 노트: 로드밸런스

NAT

사설 IP와 공인 IP를 서로 바꿔 주는 기능.

DNS

도메인 이름을 IP 주소로 바꿔 주는 체계.

HTTP

웹과 서비스 간 API 통신에 쓰는 요청-응답 프로토콜(L7).

HTTP 메서드 (GET / POST / PUT / PATCH / DELETE)

요청이 “무엇을 하라는 것인지”를 나타낸다.

메서드의미멱등비고
GET조회O본문 없이 자원을 가져온다
POST생성, 또는 처리 요청보통 X자원 생성에 가장 흔히 쓴다
PUT전체 교체(없으면 생성)O일부만 보내면 나머지가 사라진다
PATCH부분 수정설계에 따라 다름바뀐 부분만 보낸다
DELETE삭제O
  • CRUD와의 대응: Create = POST(또는 PUT), Read = GET, Update = PUT/PATCH, Delete = DELETE.
  • 주의: HTTP에는 create라는 메서드가 없다. “PUT = 수정”이 아니라 “PUT = 전체 교체”이고, 일부만 고치려면 PATCH를 쓴다.

HTTP 상태 코드

응답이 성공했는지, 누구의 문제인지를 나타내는 숫자.

범위의미예
2xx성공200 OK, 201 Created, 204 No Content
3xx다른 위치로 이동301, 307, 308
4xx클라이언트 요청 문제400 Bad Request, 401, 403, 404
5xx서버 문제500, 503

REST

자원을 URL로 표현하고 HTTP 메서드로 동작을 표현하는 API 설계 방식.

TLS / HTTPS

TLS는 통신을 암호화하는 프로토콜, HTTPS는 HTTP를 TLS 위에서 쓰는 것.

latency / throughput

latency(지연)는 요청 후 응답까지 걸리는 시간, throughput(처리량)은 단위 시간당 처리하는 양.

throttling (스로틀링) / rate limiting

단위 시간당 허용하는 요청 수를 제한해서 과부하를 막는 것.

  • “최대값을 정한다”는 이해가 맞다. 한도를 넘는 요청은 늦추거나 거절한다. 예) 초당 100건까지만 처리.
  • HTTP에서는 보통 429 Too Many Requests로 거절하고, Retry-After 헤더로 다시 시도할 시점을 알려 줄 수 있다.
  • rate limiting은 “한도 정책”을, throttling은 “그 한도에 맞게 속도를 조절하는 동작”을 가리키는 경우가 많지만 도구마다 같은 뜻으로 섞어 쓴다.
  • 학습 노트: 장애 전파 방지 패턴 - Circuit Breaker·Bulkhead·Retry·Rate Limit

traffic spike (트래픽 급증)

짧은 시간에 요청량(트래픽)이 평소보다 갑자기 크게 늘어나는 현상.

keep-alive / connection pool

keep-alive는 요청 하나가 끝나도 TCP 연결을 끊지 않고 재사용하는 것, connection pool은 연결을 미리 여러 개 만들어 두고 돌려 쓰는 것.

DNS 캐시 / TTL

도메인 → IP 변환 결과는 여러 층에서 캐시된다. 애플리케이션(JVM 등), OS·로컬 DNS 캐시, DNS 서버 순이다.

  • 원본 DNS 값이 바뀌어도 중간에 옛 값이 남아 있으면 이미 사라진 서버로 접속하거나 조회에 실패한다(stale cache). IP가 자주 바뀌는 클라우드·쿠버네티스에서 특히 자주 겪는다.
  • TTL은 레코드를 캐시해도 되는 시간이다. 조회 실패 결과도 일정 시간 캐시하는(negative caching) 설정이 있어서, DNS가 잠깐 실패하면 그 뒤 한동안 계속 실패할 수 있다. 확인은 각 층의 캐시와 TTL 설정을 순서대로 본다.
  • 학습 노트: DNS · 인터넷 통신과정 ( + IP, TCP-UDP, PORT, DNS )

tcpdump

네트워크 패킷을 캡처해서 보여 주는 도구.

  • “가끔 이상하게 끊긴다” 같은 문제를 패킷 수준에서 확인할 때 쓴다.
  • 학습 노트: pcap 예제 · libpcap 함수

conntrack / iptables / ipvs (리눅스)

conntrack은 커널의 연결 추적 테이블(가득 차면 새 연결을 버린다), iptables는 패킷 필터링·NAT 규칙, ipvs는 커널 수준 L4 로드밸런싱.

Control Plane / User Plane (3GPP 통신망)

control plane(제어 평면)은 연결 설정, 인증, 이동성 관리 같은 제어 신호를 다루는 부분이고, user plane(사용자 평면)은 실제 사용자 데이터(영상, 인터넷 트래픽)를 나르는 부분.

  • 두 평면을 나누면 독립적으로 확장하고 설계할 수 있다. 일반 네트워크 장비의 control plane / data plane 구분과 같은 개념이다.

HTTP/2

하나의 TCP 연결 위에서 요청·응답을 바이너리 프레임으로 쪼개 여러 스트림으로 동시에 주고받는 HTTP 버전(RFC 9113).

  • HTTP/1.1이 병렬성을 얻으려고 연결을 여러 개 열던 것과 달리 연결 하나로 충분하다(multiplexing).
  • 스트림 ID로 구분한다. 클라이언트가 연 스트림은 홀수, 서버가 연 스트림은 짝수이고, 한 번 쓴 ID는 연결 안에서 다시 쓰지 못한다.
  • TCP 계층의 HOL 블로킹은 남는다. HTTP/3은 이를 피하려고 QUIC을 쓴다.
  • 학습 노트: HTTP/2 핵심 개념 — 프레임·스트림·HPACK·흐름 제어·SETTINGS

HPACK

HTTP/2의 헤더 압축 방식. 이미 보낸 헤더를 정적·동적 테이블의 인덱스로 바꾸고 나머지 문자열은 Huffman 부호로 줄인다(RFC 7541).

ALPN (Application-Layer Protocol Negotiation)

TLS 핸드셰이크 중에 이 연결에서 어떤 응용 프로토콜(예: h2)로 말할지 정하는 확장.

SNI (Server Name Indication)

클라이언트가 접속하려는 호스트명을 TLS 핸드셰이크에 실어 보내, 한 IP의 여러 도메인 중 맞는 인증서를 서버가 고르게 하는 확장.

half-open connection

한쪽(또는 중간 장비)이 연결 정보를 잃었는데 다른 쪽은 연결이 살아 있다고 믿는 상태. FIN이나 RST가 오지 않아 한동안 알 수 없다.

heartbeat / watchdog (하트비트 / 워치독)

연결이나 프로세스가 살아 있는지 주기적으로 확인 메시지를 주고받아 죽은 쪽을 찾는 장치.

framing (프레이밍, 길이 접두)

바이트 스트림(TCP)에서 메시지 하나의 경계를 정하는 방법. 가장 흔한 것은 메시지 앞에 길이를 붙이는 길이 접두 방식.

Nagle 알고리즘 / TCP_NODELAY

Nagle은 작은 데이터를 모아서 보내 패킷 수를 줄이는 TCP 기능이고, TCP_NODELAY는 이를 끄는 소켓 옵션.

star / full mesh (별형 / 망형 토폴로지)

별형은 한 서버에 나머지가 접속하는 구조(연결 N−1개), 망형은 모든 노드가 서로 연결된 구조(연결 N(N−1)/2개).

nghttp2

C로 만든 HTTP/2 구현 라이브러리. 소켓, TLS, 스레드는 다루지 않고, 바이트를 넣으면 콜백이 호출되고 보낼 바이트를 돌려준다.

  • 하나의 nghttp2_session은 한 시점에 한 스레드만 사용해야 한다.
  • 최신 문서는 이름이 2로 끝나는 새 함수(mem_recv2 등)를 쓴다. 설치된 버전의 헤더를 확인한다.
  • 학습 노트: nghttp2 API 모델 — 세션·콜백·입출력 루프